package com.dis.service.service;

import com.dis.pojo.dto.MenuTreeDTO;
import com.dis.pojo.entity.Permission;

import java.util.List;

public interface PermissionService {

    /**
     * 获取所有权限列表
     */
    List<Permission> getAllPermissions();

    /**
     * 获取权限树
     */
    List<MenuTreeDTO> getPermissionTree();

    /**
     * 根据角色ID获取权限ID列表
     */
    List<Long> getPermissionIdsByRoleId(Long roleId);

    /**
     * 根据角色ID获取权限列表
     */
    List<Permission> getPermissionsByRoleId(Long roleId);

    /**
     * 根据用户ID获取菜单树
     */
    List<MenuTreeDTO> getMenuTreeByUserId(Long userId);

    /**
     * 根据用户ID获取权限编码列表
     */
    List<String> getPermissionCodesByUserId(Long userId);

    /**
     * 新增权限
     */
    boolean addPermission(Permission permission);

    /**
     * 更新权限
     */
    boolean updatePermission(Permission permission);

    /**
     * 删除权限
     */
    boolean deletePermission(Long id);

    /**
     * 根据ID获取权限
     */
    Permission getById(Long id);
}
